#ifndef _DRV_I2C_H_
#define _DRV_I2C_H_

#include <stdint.h>

#define seqI2C0	0
#define seqI2C1	1


/* I2C状态码 */
typedef enum
{
	I2C_RET_OK, 
	I2C_RET_BUSY, 
	I2C_RET_ERROR,
} I2C_Status_t;

/**
***********************************************************
* @brief I2C硬件初始化
* @param
* @return 
***********************************************************
*/
void I2C_DrvInit(uint8_t address);

/* @bref 读取多个字节
 * @param reg_addr 待读取的寄存器地址
 * @param p_data 数据缓冲区地址
 * @retval 读取成功返回I2C_RET_OK，失败返回I2C_RET_ERROR
 */
uint8_t I2C_ReadMultByte(uint16_t reg_addr, uint8_t *p_data, uint8_t nsize);

/* @bref 写入一个字节
 * @param reg_addr 待写入的寄存器地址
 * @param reg_data 待写入的数据
 * @retval 写入成功返回I2C_RET_OK，失败返回I2C_RET_ERROR
 */
uint8_t I2C_WriteByte(uint16_t reg_addr, uint8_t reg_data);

/* @bref 读取一个字节
 * @param reg_addr 待读取的寄存器地址
 * @param p_data 数据缓冲区地址
 * @retval 读取成功返回I2C_RET_OK，失败返回I2C_RET_ERROR
 */
uint8_t I2C_ReadByte(uint16_t reg_addr, uint8_t *p_data);

#endif
